--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
meshchatx/src/frontend/libs/uuid.js master (b89dc9e6) Text, 2.66 KB
T8b949e// SPDX-License-Identifier: 0BSD
Tff7b72const Te6edf3UUID_V4_RE Tff7b72= Ta5d6ff/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iTb4b4b4;
T8b949e/**
* @typedef {object} UuidCrypto
* @property {(array: Uint8Array) => Uint8Array} [getRandomValues]
* @property {() => string} [randomUUID]
*/
T8b949e/**
* @returns {UuidCrypto | undefined}
*/
Tff7b72function Te6edf3getCryptoTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThis Tff7b72!== Ta5d6ff"undefined" Tff7b72&& Tffa657globalThisTb4b4b4.Te6edf3cryptoTb4b4b4) Tb4b4b4{
Tff7b72return Tffa657globalThisTb4b4b4.Te6edf3cryptoTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72undefinedTb4b4b4;
Tb4b4b4}
T8b949e/**
* Resolve crypto source. Pass `crypto: null` to force the non-crypto fallback.
*
* @param {{ crypto?: UuidCrypto | null }} [options]
* @returns {UuidCrypto | null | undefined}
*/
Tff7b72export Tff7b72function Te6edf3resolveCryptoTb4b4b4(Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657ObjectTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3hasOwnPropertyTb4b4b4.Te6edf3callTb4b4b4(Te6edf3optionsTb4b4b4, Ta5d6ff"crypto"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3optionsTb4b4b4.Te6edf3cryptoTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3getCryptoTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Fill a Uint8Array with cryptographically strong random values when possible.
* Falls back to Math.random only when Web Crypto is unavailable.
* Do not use the Math.random path for secrets.
*
* @param {Uint8Array} bytes
* @param {{ crypto?: UuidCrypto | null }} [options]
* @returns {Uint8Array}
*/
Tff7b72export Tff7b72function Te6edf3fillRandomBytesTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3bytes Tff7b72instanceof Tffa657Uint8ArrayTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149TypeErrorTb4b4b4(Ta5d6ff"fillRandomBytes expects a Uint8Array"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3c Tff7b72= Te6edf3resolveCryptoTb4b4b4(Te6edf3optionsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3c Tff7b72&& Tff7b72typeof Te6edf3cTb4b4b4.Te6edf3getRandomValues Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Te6edf3cTb4b4b4.Te6edf3getRandomValuesTb4b4b4(Te6edf3bytesTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3bytesTb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3bytesTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3bytesTb4b4b4[Te6edf3iTb4b4b4] Tff7b72= Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff256Tb4b4b4) Tff7b72& T79c0ff0xffTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3bytesTb4b4b4;
Tb4b4b4}
T8b949e/**
* RFC 4122 version 4 UUID string.
*
* @param {{ crypto?: UuidCrypto | null }} [options]
* @returns {string}
*/
Tff7b72export Tff7b72function Te6edf3randomUuidV4Tb4b4b4(Te6edf3options Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3c Tff7b72= Te6edf3resolveCryptoTb4b4b4(Te6edf3optionsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3c Tff7b72&& Tff7b72typeof Te6edf3cTb4b4b4.Te6edf3randomUUID Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3cTb4b4b4.Te6edf3randomUUIDTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3bytes Tff7b72= Te6edf3fillRandomBytesTb4b4b4(Tff7b72new Tffa657Uint8ArrayTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4, Tb4b4b4{ Te6edf3cryptoTff7b72: Te6edf3c Tff7b72?? Tff7b72null Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3bytesTb4b4b4[T79c0ff6Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3bytesTb4b4b4[T79c0ff6Tb4b4b4] Tff7b72& T79c0ff0x0fTb4b4b4) Tff7b72| T79c0ff0x40Tb4b4b4;
Te6edf3bytesTb4b4b4[T79c0ff8Tb4b4b4] Tff7b72= Tb4b4b4(Te6edf3bytesTb4b4b4[T79c0ff8Tb4b4b4] Tff7b72& T79c0ff0x3fTb4b4b4) Tff7b72| T79c0ff0x80Tb4b4b4;
Tff7b72const Te6edf3hex Tff7b72= Tffa657ArrayTb4b4b4.Tff7b72fromTb4b4b4(Te6edf3bytesTb4b4b4, Tb4b4b4(Te6edf3bTb4b4b4) Tb4b4b4=> Te6edf3bTb4b4b4.Te6edf3toStringTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4.Te6edf3padStartTb4b4b4(T79c0ff2Tb4b4b4, Ta5d6ff"0"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff`Tffd700${Te6edf3hexTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff8Tb4b4b4)Tffd700}Ta5d6ff-Tffd700${Te6edf3hexTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff8Tb4b4b4, T79c0ff12Tb4b4b4)Tffd700}Ta5d6ff-Tffd700${Te6edf3hexTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff12Tb4b4b4, T79c0ff16Tb4b4b4)Tffd700}Ta5d6ff-Tffd700${Te6edf3hexTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff16Tb4b4b4, T79c0ff20Tb4b4b4)Tffd700}Ta5d6ff-Tffd700${Te6edf3hexTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff20Tb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Alias matching the previous `uuid` package import style.
*
* @param {{ crypto?: UuidCrypto | null }} [options]
* @returns {string}
*/
Tff7b72export Tff7b72function Te6edf3uuidv4Tb4b4b4(Te6edf3optionsTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3randomUuidV4Tb4b4b4(Te6edf3optionsTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {unknown} value
* @returns {boolean}
*/
Tff7b72export Tff7b72function Te6edf3isUuidV4Tb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72typeof Te6edf3value Tff7b72=== Ta5d6ff"string" Tff7b72&& Te6edf3UUID_V4_RETb4b4b4.Te6edf3testTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72export Tb4b4b4{ Te6edf3UUID_V4_RE Tb4b4b4}Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────